package net.oschina.esb.util;

/**
 * 日期工具类
 *
 * @author Arvin
 * @time 2018/3/2 9:32
 */
public class TimeUtil {

    /**
     * 是否是24制的时间
     *
     * @param hour 小时 ， 0-23
     * @return true 表示正确， false 表示错误
     */
    public static boolean is24Hour(int hour) {
        return hour > -1 && hour < 24;
    }

    /**
     * 检查 24 小时制格式是否正确
     *
     * @param hour 24 格式小时， 0-23
     */
    public static void check24Hour(int hour) {
        AssertUtil.assertTrue(is24Hour(hour), "时间格式错误，24小时制，请输入 0-23的值");
    }

    /**
     * 是否是合法的分钟时间
     *
     * @param minute 分钟， 0-59
     * @return true 表示正确， false 表示错误
     */
    public static boolean isMinute(int minute) {
        return minute > -1 && minute < 60;
    }

    /**
     * 是否是合法的分钟时间
     *
     * @param minute 分钟， 0-59
     */
    public static void checkMinute(int minute) {
        AssertUtil.assertTrue(isMinute(minute), "分钟格式错误，请输入 0-59的值");
    }

    /**
     * 是否是合法的秒时间
     *
     * @param second 秒， 0-59
     * @return true 表示正确， false 表示错误
     */
    public static boolean isSecond(int second) {
        return second > -1 && second < 60;
    }

    /**
     * 是否是合法的秒时间
     *
     * @param second 秒时间， 0-59
     */
    public static void checkSecond(int second) {
        AssertUtil.assertTrue(TimeUtil.isSecond(second), "秒钟格式错误，请输入 0-59的值");
    }

    /**
     * 时分秒格式检查
     *
     * @param hour24 24小时制
     * @param minute 分钟
     * @param second 秒钟
     */
    public static void checkHourMinuteSecond(int hour24, int minute, int second) {
        check24Hour(hour24);
        checkMinute(minute);
        checkSecond(second);
    }
}
